#ifndef JEU_H
#define JEU_H

#include "Terrain.h"
#include "Piece.h"


/**
* \struct Jeu
* \brief Composee de 4 parametres :
* un terrain, le score, le niveau et la fin du jeu
*/
struct Jeu
{
	Terrain * terrain;
	int score;
	int niveau;
	int fin;
};

typedef struct Jeu Jeu;

/*Cree un pointeur sur jeu avec un malloc */
Jeu* CreerJeu();

/* Initialise le jeu en mettant le score a 0 et le niveau a 1 et l'entier fin a 1 */
void InitJeu(Jeu* jeu);

/* Deplace la piece selon la direction demandee par le joueur */
void ActionClavier(Jeu* jeu,const char touche);

/*Insere une piece au hasard en haut du terrain */
void InserePiece(Jeu * jeu);

/* Tourne la piece de 90 degree vers la droite */
void PieceTourner(Jeu * jeu);

/* Deplace la piece vers la gauche tant qu'elle peut etre deplace */
void PieceGauche(Jeu * jeu);

/* Deplace la piece vers la droite */
void PieceDroite(Jeu * jeu);

/* Deplace la piece vers la bas */
void PieceBas(Jeu * jeu);

/* Deplace la piece sans action clavier */
void PieceTomber(Jeu * jeu);

/* Retourne le terrain */
Terrain * GetTerrain(const Jeu * jeu);

/*Retourne le score du joueur */
int GetScore(const Jeu * jeu);

/*Retourne le niveau du joueur */
int GetNiveau(const Jeu * jeu);

/*Supprime les lignes occupees */
void SupprimeLignes( Jeu * jeu);

/*Libere le jeu */
void LibereJeu(Jeu *jeu);


#endif
